package com.model.auto;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author astupidcoder
 * @since 2022-09-14
 */
@Data
public class Student implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 学生姓名
     */
    private String name;

    /**
     * 创建人
     */
    private Integer createdUser;

    /**
     * 手机号
     */
    private String stuNo;

    /**
     * 准考证号码（密码）
     */
    private String examNo;

    /**
     * 身份证号码
     */
    private String cardNo;

    /**
     * 科目类型1:理科2:文科
     */
    private Integer major;

    /**
     * 性别0:男1:女
     */
    private Integer sex;

    /**
     * 学校名称
     */
    private String school;

    /**
     * 锁定
     */
    private Integer rank;

    /**
     * 学生排序
     */
    @TableField( updateStrategy = FieldStrategy.IGNORED)
    private Integer stuNum;

    /**
     * 考生类别
     */
    private String stuType;

    /**
     * 分数
     */
    private String score;

    /**
     * 位次
     */
    private String precedence;

    /**
     * 优惠政策（加分）
     */
    private String policy;

    /**
     * 限制
     */
    private String limitContent;

    /**
     * 高考年份
     */
    private String other;

    /**
     * 语文成绩
     */
    private String chinese;

    /**
     * 英语成绩
     */
    private String english;

    /**
     * 数学成绩
     */
    private String manth;

    /**
     * 物理成绩
     */
    private String physics;

    /**
     * 历史成绩
     */
    private String history;

    /**
     * 化学成绩
     */
    private String chemistry;

    /**
     * 政治成绩
     */
    private String politics;

    /**
     * 生物成绩（外语口试）
     */
    private String biology;

    /**
     * 地理成绩
     */
    private String geography;

    /**
     * 综合成绩
     */
    private String comprehensive;

    /**
     * 排序
     */
    private Integer sortNum;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime createdTime;

    /**
     * 户籍地址
     */
    private String address;

    /**
     * 户口类型1:城镇2:农村
     */
    private Integer addressType;

    /**
     * 身高单位cm
     */
    private Integer height;

    /**
     * 体重单位kg
     */
    private Integer weight;

    /**
     * 视力左眼
     */
    private BigDecimal visionLeft;

    /**
     * 视力右眼
     */
    private BigDecimal visionRight;

    /**
     * 出生日期
     */
    private LocalDate birthdayDate;

    /**
     * 民族，字典值
     */
    private String nation;

    /**
     * 政治面貌，字典值
     */
    private String politic;

    /**
     * 外语语种，字典值
     */
    private String languagesMsg;

    /**
     * 是否合格1:是0:否
     */
    private Integer isEligible;

    /**
     * 备注说明
     */
    private String remarks;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 视力
     */
    private String vision;

    /**
     * 其他情况
     */
    private String others;

    /**
     * 升学渠道信息json
     */
    private String checkMsg;

    /**
     * 报考意向信息json
     */
    private String examMsg;

    /**
     * 再选科目1
     */
    private String subject1;

    /**
     * 再选科目2
     */
    private String subject2;

    /**
     * 是否已删除
     */
    private Boolean deleted;

    /**
     * 学生方案备注
     */
    private String schemeRemark;

    /**
     * 是否禁止修改选科
     */
    private Boolean disabledMajor;

    /**
     * 是否禁止修改分数
     */
    private Boolean disabledScore;

    @TableField(exist = false)
    private String cardCode;

    /**
     * 学生联系人
     */
    @TableField(exist = false)
    private List<Contacts> stuContacts;

    /**
     * 学生成绩
     */
    @TableField(exist = false)
    private List<Achievement> stuAchievements;
}
